/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.sql.SQLException;
import java.util.ArrayList;
import util.Constante;

/**
 *
 * @author MoroComputer
 */
public class Tcc extends DML {

    private String titulo;
    private String proposta;
    private Professor orientador;

    public Tcc(String titulo, String proposta, Professor orientador) {
        this.titulo = titulo;
        this.proposta = proposta;
        this.orientador = orientador;
    }

    public Tcc() {

    }

    public int recuperarIdTcc(String titulo, String proposta) {
        try {
            String sql = "select idtcc from tcc where tema=\"" + titulo + "\" and "
                    + "proposta=\"" + proposta + "\";";
            super.conecta = ConectaBD.getInstance();
            super.statement = super.conecta.getConnection().createStatement();
            super.resultSet = super.statement.executeQuery(sql);
            int id = 0;
            while (super.resultSet.next()) {
                id = super.resultSet.getInt(1);
            }
            return id;
        } catch (SQLException ex) {

        } finally {

        }
        return 0;
    }

    public ArrayList<String> getDadosDeTcc(int idTcc) {
        try {
            ArrayList<String> resultado = new ArrayList<>();
            Professor orientador = new Professor();

            String sql = "select tema,orientador_professor,solicitacaoDeOrientacao from tcc where idtcc=" + idTcc + ";";
            super.conecta = ConectaBD.getInstance();
            super.statement = super.conecta.getConnection().createStatement();
            super.resultSet = super.statement.executeQuery(sql);
            int idOrientador = 0;
            int solicitacaoDeOrientacao = 0;
            while (super.resultSet.next()) {
                resultado.add(super.resultSet.getString(1));
                idOrientador = super.resultSet.getInt(2);
                solicitacaoDeOrientacao = super.resultSet.getInt(3);
            }
            resultado.add(orientador.recuperaNomeProfessor(idOrientador));
            if (solicitacaoDeOrientacao == Constante.STATUS_AGUARDANDO) {
                resultado.add("Solicitação enviada, mas aguardando para ser aceita!");
            } else if (solicitacaoDeOrientacao == Constante.STATUS_APROVADO) {
                resultado.add("Solicitação enviada, aceita pelo orientador!");
            } else if (solicitacaoDeOrientacao == Constante.STATUS_REPROVADO) {
                resultado.add("Solicitação enviada, rejeitada pelo orientador!");
            }
            return resultado;
        } catch (SQLException ex) {

        } finally {

        }
        return null;
    }

    public ArrayList<Integer> recuperaIdsTccs(int idOrientador) {
        try {
            String sql = "select idtcc from tcc where orientador_professor= " + idOrientador + " and solicitacaoDeOrientacao =" + Constante.STATUS_APROVADO + ";";
            ArrayList<Integer> list = new ArrayList<Integer>();

            super.conecta = ConectaBD.getInstance();
            super.statement = super.conecta.getConnection().createStatement();
            super.resultSet = super.statement.executeQuery(sql);

            while (super.resultSet.next()) {
                list.add(super.resultSet.getInt(1));
            }
            return list;
        } catch (SQLException ex) {

        } finally {

        }
        return null;
    }
    /**
     * @return the titulo
     */
    public String getTitulo() {
        return titulo;
    }

    /**
     * @param titulo the titulo to set
     */
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    /**
     * @return the proposta
     */
    public String getProposta() {
        return proposta;
    }

    /**
     * @param proposta the proposta to set
     */
    public void setProposta(String proposta) {
        this.proposta = proposta;
    }

    /**
     * @return the orientador
     */
    public Professor getOrientador() {
        return orientador;
    }

    /**
     * @param orientador the orientador to set
     */
    public void setOrientador(Professor orientador) {
        this.orientador = orientador;
    }
}
